import os

# 模型配置
MODEL_CONFIG = {
    # 嵌入模型配置
    "EMBEDDING_MODEL_TYPE": os.environ.get("EMBEDDING_MODEL_TYPE", "sentence_transformer"),  # 可选: bge, sentence_transformer
    # 对于国内bge的嵌入
    "BGE_MODEL_PATH": os.environ.get("BGE_MODEL_PATH", "BAAI/bge-m3"),
    "BGE_MODEL_USE_FP16": os.environ.get("BGE_MODEL_USE_FP16", "True").lower() == "true",
    
    # SentenceTransformer模型配置(对应qwen3的嵌入)
    "ST_MODEL_PATH": os.environ.get("ST_MODEL_PATH", "Qwen/Qwen3-Embedding-0.6B"),
    "ST_MODEL_USE_FP16": os.environ.get("ST_MODEL_USE_FP16", "True").lower() == "true",
    
    # HuggingFace配置
    "HF_ENDPOINT": os.environ.get("HF_ENDPOINT", "https://hf-mirror.com"),
    "HF_HUB_DISABLE_XET": os.environ.get("HF_HUB_DISABLE_XET", "1"),  # 强制禁用 Xet Storage
    
    # 重排序模型配置
    "RERANK_MODEL_TYPE": os.environ.get("RERANK_MODEL_TYPE", "flag"),  # 可选: flag, sentence_transformer
    "RERANK_MODEL_PATH_FLAG": os.environ.get("RERANK_MODEL_PATH_FLAG", "BAAI/bge-reranker-v2"),
    "RERANK_MODEL_USE_FP16": os.environ.get("RERANK_MODEL_USE_FP16", "True").lower() == "true",
    
    # SentenceTransformer重排序模型配置(对应qwen3的重排序模型)
    "RERANK_MODEL_PATH_ST": os.environ.get("RERANK_MODEL_PATH_ST", "Qwen/Qwen3-Reranker-0.6B"),
    "ST_RERANK_MODEL_USE_FP16": os.environ.get("ST_RERANK_MODEL_USE_FP16", "True").lower() == "true",
    
    # 离线模式配置（当无法连接模型仓库时使用）
    "OFFLINE_MODE": os.environ.get("OFFLINE_MODE", "False").lower() == "true",
    
    # jieba分词配置
    "JIEBA_CACHE_DIR": os.environ.get("JIEBA_CACHE_DIR", "./cache"),
}

# Elasticsearch配置
ES_CONFIG = {
    "ES_HOSTS": os.environ.get("ELASTICSEARCH_HOSTS", "http://localhost:9200").split(","),
    "ES_USER": os.environ.get("ELASTICSEARCH_USERNAME", "elastic"),
    "ES_PASS": os.environ.get("ELASTICSEARCH_PASSWORD", "changeme"),
    "ES_INDEX": os.environ.get("ELASTICSEARCH_INDEX", "jd_file_index_formal"),
    "ES_VERIFY_CERTS": os.environ.get("ES_VERIFY_CERTS", "False").lower() == "true",
    "ES_ENABLED": os.environ.get("ES_ENABLED", "True").lower() == "true",
}

# Redis缓存配置
REDIS_CONFIG = {
    "REDIS_HOST": os.environ.get("REDIS_HOST", "localhost"),
    "REDIS_PORT": int(os.environ.get("REDIS_PORT", "6379")),
    "REDIS_DB": int(os.environ.get("REDIS_DB", "0")),
    "REDIS_PASSWORD": os.environ.get("REDIS_PASSWORD", ""),
    "REDIS_ENABLED": os.environ.get("REDIS_ENABLED", "True").lower() == "true",
}

# 应用配置
APP_CONFIG = {
    "HOST": os.environ.get("HOST", "127.0.0.1"),
    "PORT": int(os.environ.get("PORT", "8006")),
    "DEBUG": os.environ.get("DEBUG", "False").lower() == "true",
    "LOG_LEVEL": os.environ.get("LOG_LEVEL", "INFO"),
    "UPLOAD_LIMIT_MB": int(os.environ.get("UPLOAD_LIMIT_MB", "30")),
}

# Celery配置
CELERY_CONFIG = {
    "CELERY_BROKER_URL": os.environ.get("CELERY_BROKER_URL", "redis://localhost:6379/1"),
    "CELERY_RESULT_BACKEND": os.environ.get("CELERY_RESULT_BACKEND", "redis://localhost:6379/1"),
    "CELERY_ENABLED": os.environ.get("CELERY_ENABLED", "False").lower() == "true",
}

# 知识库目录
KNOWLEDGE_BASE_DIR = os.environ.get("KNOWLEDGE_BASE_DIR", "./knowledge_base")

# 日志目录
LOGS_DIR = os.environ.get("LOGS_DIR", "./logs")

# 缓存目录
CACHE_DIR = os.environ.get("CACHE_DIR", "./cache") 